Spread spectrum transceiver

ABSTRACT

An assembly of simultaneously transmitted electrically generated signals, which contains a subset of binary spreading-code sequences that are members of a larger set of binary spreading-code sequences available to a particular node of a multi-node communication network. All sequences in the set of spreading-code sequences available to the particular node of the network can be generated by the same configuration of two linear-feedback binary shift registers, where feedback taps of the two linear-feedback binary shift registers correspond to primative polynomials of the same degree over GF(2), the field of two elements.

CROSS-REFERENCE TO RELATED PATENT APPLICATIONS

This application is a Continuation of U.S. application Ser. No.09/759,425, filed Jan. 12, 2001, incorporated herein by reference in itsentirety, which is a Divisional of U.S. application Ser. No. 08/003,996,filed Jan. 15, 1993, now issued as U.S. Pat. No. 6,621,854, incorporatedherein by reference in its entirety, which is a Divisional of U.S.application Ser. No. 07/766,372, filed Sep. 27, 1991, now issued as U.S.Pat. No. 5,210,770, incorporated herein by reference in its entirety.Related patent applications include U.S. application Ser. No.07/907,358, filed Jul. 1, 1992, now issued as U.S. Pat. No. 5,267,271;U.S. application Ser. No. 08/100,334, filed Jul. 30, 1993, now issued asU.S. Pat. No. 5,452,328; U.S. application Ser. No. 08/456,077, filed May31, 1995, now issued as U.S. Pat. No. 5,815,526; U.S. application Ser.No. 09/113,410, filed Jul. 10, 1998, now issued as U.S. Pat. No.5,991,333; U.S. application Ser. No. 10/873,784, filed Jun. 21, 2004,now issued as U.S. Pat. No. 7,457,345; U.S. application Ser. No.11/468,923, filed Aug. 31, 2006, now issued as U.S. Pat. No. 7,457,348;and U.S. application Ser. No. 11/470,967, filed Sep. 7, 2006.

TECHNICAL FIELD

This invention relates generally to digital communication systems, andmore particularly to a spectrum spreading technique for use inmulti-node digital communication systems such as digital networks anddigital radios.

BACKGROUND

Spectrum spreading techniques for use in digital communication networkshave been described in many books and papers. A classic publication inthis field is Spread Spectrum Communications by M. K. Simon, J. K.Omura, R. A. Scholtz and B. K. Levitt, Computer Science Press, 11 TaftCourt, Rockville, Md. 20850, 1985. Particular kinds of spectrumspreading techniques that have been implemented in digital communicationnetworks in the prior art include “direct-sequence spreading,”“frequency hopping,” “time hopping,” and various hybrid methods thatinvolve combinations of the aforementioned techniques.

Multi-node spread-spectrum communication networks developed in the priorart were generally characterized as code-division multiple-access (CDMA)networks, which utilized “code-division multiplexing” (i.e., a techniquein which signals generated by different spreading-code sequencessimultaneously occupy the same frequency band). Code-divisionmultiplexing requires that the simultaneously used spreading codes besubstantially “mutually orthogonal,” so that a receiver with a filtermatched to one of the spreading codes rejects signals that have beenspread by any of the other spreading codes.

In a typical multi-node spread-spectrum communication network usingeither a conventional direct-sequence spectrum spreading technique, or ahybrid technique involving, e.g., direct-sequence and frequency-hoppedspectrum spreading, only a single spreading code is employed. At regularintervals, the polarity of the spreading code is either inverted (i.e.,each 0 is changed to 1, and each 1 is changed to 0) or left unchanged,depending on whether the next bit of information to be transmitted is a1 or a 0. The resulting signal is an “information-bearing” sequence,which ordinarily would be transmitted using some type of phase-shiftkeyed (PSK) modulation—usually, binary phase-shift keyed (BPSK)modulation or quaternary phase-shift keyed (QPSK) modulation.

A publication entitled Spread Spectrum Techniques Handbook, SecondEdition, March 1979, which was prepared for the National Security Agencyby Radian Corporation of Austin, Tex., describes a number ofspread-spectrum techniques that had been proposed in the prior art. Ofparticular interest is a direct-sequence technique described on page2-21 et seq. of the Spread Spectrum Techniques Handbook, which involvedtransmitting one bit of information (either a 0 or a 1) by switchingbetween two independent signals that are generated by differentspreading codes. Ideally, the spreading codes of the two independentsignals should be “almost orthogonal” with respect to each other, sothat cross-correlation between the two sequences is very small. Inpractice, in such early spread-spectrum communication systems, the twoindependent signals were maximal-length linear recursive sequences(MLLRSs), often called “M-sequences”, whose cross-correlations at allpossible off-sets had been computed and found to be acceptably low.However, this technique of switching between two independent signals didnot achieve widespread acceptance, mainly because it requiredapproximately twice the electronic circuitry of a polarity-inversiontechnique without providing any better performance.

Two recent papers, viz., “Spread-Spectrum Multiple-Access Performance ofOrthogonal Codes Linear Receivers” by P. K. Enge and D. V. Sarwate,(IEEE Transactions on Communications, Vol. COM-35, No. 12, December1987, pp. 1309-1319), and “Spread-Spectrum Multiple-Access Performanceof Orthogonal Codes for Indoor Radio Communications” by K. Pahlavan andM. Chase, (IEEE Transactions on Communications, Vol. 38, No. 5, May1990, pp. 574-577), discuss multi-node spread-spectrum communicationnetworks in which multiple orthogonal sequences within a relativelynarrow bandwidth are assigned to each node, whereby a correspondingmultiplicity of information bits can be simultaneously transmittedand/or received by each node—thereby providing a correspondingly higherdata rate. A specified segment of each sequence available to a node ofthe network is designated as a “symbol.” In the case of a repetitivesequence, a symbol could be a complete period of the sequence. The timeinterval during which a node transmits or receives such a symbol iscalled a “symbol interval.” In a multi-node spread-spectrum networkemploying multiple orthogonal sequences, all the −nodes cansimultaneously transmit and/or receive information-bearing symbolsderived from some or all of the sequences available to the nodes.

The emphasis in the aforementioned Enge et al. and Pahlavan et al.papers is on network performance, especially in certain kinds of signalenvironments. Neither paper recommends or suggests using any particularset of mutually orthogonal spreading codes for generating multipleorthogonal sequences; and neither paper discloses how to derive orgenerate suitable mutually orthogonal spreading codes. However, methodsof generating families of sequences that are pairwise “almostorthogonal” by using two-register sequence generators have been knownfor some time.

In a paper entitled “Optimal Binary Sequences for Spread-SpectrumMultiplexing” by R. Gold, (IEEE Transactions on Information Theory, Vol.IT-13, October 1967, pp. 119-121), so-called “Gold codes” were proposedfor use as spreading codes in multi-node direct-sequence spread-spectrumcommunication networks of the CDMA type. A Gold code is a linearrecursive sequence that is generated by a product f₁ f₂, where f₁ and f₂comprise the members of a so-called “preferred pair” of primitivepolynomials of the same degree n over a field GF(2). A primitivepolynomial of degree n is defined as a polynomial that generates amaximal-length linear recursive sequence (MLLRS), which has a period of(2^(n)−1). The required relationship between f₁ and f₂ that makes them apreferred pair is described in the aforementioned paper by R. Gold.

A Gold code is a particular kind of “composite code.” Other kinds ofcomposite codes include “symmetric codes” and “Kasami codes.” Asymmetric code is similar to a Gold code in being generated by a productf₁ f₂ of a pair of primitive polynomials, except that for a symmetriccode the polynomial f₂ is the “reverse” of primitive polynomial f₁,i.e., f₂(x)=x^(n) f₁(1/x), where n=deg f₁=deg f₂. The correlationproperties of Gold codes and symmetric codes are discussed in a paperentitled “Crosscorrelation Properties of Pseudorandom and RelatedSequences” by D. V. Sarwate and M. B. Pursley, (Proceedings of the IEEE,Vol. 68, No. 5, May 1980, pp. 593-619). Kasami codes differ from Goldcodes in that for Kasami codes, the polynomials f₁ and f₂ are not of thesame degree. Kasami codes are also discussed in the aforementioned paperby M. B. Pursley and D. V. Sarwate. The concept of a “composite code”can be broadened to include sequences obtained from a two-registersequence generator, where the sequences generated in the two registerscan be quite general.

Predominant among the reasons that have militated against usingdirect-sequence spreading codes for multi-node spread-spectrumcommunication networks of the prior art is the so-called “near-far”problem. If the nodes of a multi-node spread-spectrum communicationnetwork are widely distributed so that power levels for different nodescan differ markedly at a given receiver in the network, then at thegiven receiver the correlations of a reference sequence with a sequencethat is transmitted by a nearby node are apt to be stronger thancorrelations of the reference sequence with a version of the referencesequence that has been transmitted from a greater distance. Adverseeffects of the “near-far” problem can include periodic strongcorrelations in information-bit errors, and false synchronization. Toavoid such adverse effects, frequency hopping has been preferred in theprior art for multi-node spread-spectrum communicationnetworks—especially for tactical networks where the nodes are widelydistributed. Until recently, most of the research funding and efforts inconnection with multi-node spread-spectrum communication networks havebeen directed toward tactical networks, thereby virtually precludingsignificant research on direct-sequence spread-spectrum communicationnetworks.

Hybrid frequency-hopped and direct-sequence spread-spectrumcommunication networks have been proposed for tactical applications.However, the frequency diversity provided by “hopping” of the carrierreadily enables rejection of unintended signals, thereby making thechoice of a particular spreading-code sequence relatively unimportant.Consequently, there has been substantially no research in the prior arton the use of Gold codes and other composite codes for hybridfrequency-hopped and direct-sequence spread-spectrum communicationnetworks.

Direct-sequence spread-spectrum communication networks have receivedrecent attention in connection with the development of wireless localarea networks (LANs), personal communications networks (PCNs), andcellular telephone networks utilizing communications satellites. The“near-far” problem is ordinarily not an issue for LANs and PCNs, becausethe nodes in such networks are generally distributed at distances thatare not very far from each other. For cellular telephones, the“near-far” problem is not an issue in satellite applications, becauseall transmitters in the “spot beam” from a satellite are roughly at thesame distance from the satellite.

Several wireless LANs are described in an article entitled “SpreadSpectrum Goes Commercial” by D. L Schilling, R. L Pickholtz and L. B.Milstein, IEEE Spectrum, Vol. 27, No. 6, August 1990, pp. 40-45. Forindoor spread-spectrum communication networks (e.g., wireless LANs),spectrum spreading has commonly been employed in “star network”configurations. In a star network, the nodes are normally synchronizedwith a master controller, so that each node of the network can use adifferent offset of the same spreading-code sequence. Falsesynchronization is not ordinarily encountered with star networks. Incircumstances in which two or more star networks, each utilizing adifferent spreading-code sequence, operate in close proximity to eachother, composite codes could be used to advantage to preventinterference between neighboring star networks. However, in the priorart, reliance has usually been placed upon the distance between theindividual star networks, and upon signal-attenuating structures (e.g.,walls) separating the individual star networks, as well as uponcross-correlation properties that are expected of random uncorrelatedspreading-code sequences, to enable one star network to reject signalsfrom another star network in its vicinity. Consequently, composite codeshave generally not been used in star networks.

In PCNs, the use of composite codes as spreading-code sequences has notyet received much attention, because factors such as size, weight andpower considerations have generally favored simplicity over performance.Techniques involving satellite-based CDMA cellular radio networks haveemerged from developments in wireless LANs, but have generally beenconcerned with coding and systems engineering rather than withspreading-code sequence generation.

To date, direct-sequence spectrum spreading techniques have been usedprimarily in applications requiring high multipath immunity, good timeresolution, robustness, privacy and low probability of detection, andfor which in-band interference and the “near/far” problem aremanageable. Such applications have included satellite communications,star networks in office environments, mobile radio and positioning andnavigation applications. The use of composite codes (e.g., Gold codes orsymmetric codes) for spectrum spreading in such applications has notheretofore been deemed appropriate, because composite codes wouldrequire significantly greater hardware complexity to implement thanMLLRSs without seeming to provide sufficient compensating advantagesover MLLRSs in terms of processing gain, the number of nodes that can beaccommodated, the rate of data transmission, or robustness.

SUMMARY

It is a general object of the present invention to provide aspread-spectrum technique for use in a multi-node digital communicationnetwork, whereby a unique set of spreading-code sequences is assigned toeach node of the network for transmitting digital signals.

It is a particular object of the present invention to provide a methodfor generating a family of nearly orthogonal spreading-code sequences,and for assigning a unique set of spreading-code sequences from thefamily of sequences so generated to each node of a multi-node digitalcommunication network.

It is also a particular object of the present invention to providemethods for selecting a set of one or more spreading-code sequences thatcan be used during a specified period of time (i.e., a so-called “symbolinterval”) to convey multiple bits of information, if the selectedsequence or sequences of the set are modulated and transmittedsimultaneously.

It is likewise a particular object of the present invention to providelogic circuit designs for hardware implementation of methods forgenerating a family of spreading-code sequences for assignment to thenodes of a multi-node digital communication network.

It is a further object of the present invention to provide methods forsimultaneously modulating a set of carriers of the same frequency but ofdifferent phases in order to enable multiple bits of information to betransmitted on each carrier of the set.

It is another object of the present invention to provide aspread-spectrum technique for use in a multi-node digital communicationnetwork, which can readily incorporate standard error-control coding(whose parameters are matched to the particular application) into thetransmission and reception of digital signals propagated by the network.

It is also an object of the present invention to provide a techniquewhereby conventional equipment designed for generating arbitraryspreading-code sequences can be adapted to the task of generating afamily of spreading-code sequences for use in a multi-node digitalcommunication network.

It is a further object of the present invention to provide a techniquewhereby direct-sequence spectrum spreading, or a hybrid combination ofdirect-sequence and frequency-hopped spectrum spreading, can be utilizedin conjunction with code diversity or “code hopping” in aspread-spectrum digital communication network designed to have a lowprobability of intercept (LPI).

It is also an object of the present invention to provide symboldetection methods, which enable a receiver at any given node in amulti-node spread-spectrum digital communication network to determinethe most likely spreading-code sequence or sequences transmitted byanother node of the network attempting to communicate with the givennode.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic illustration of an apparatus for generating afamily of nearly orthogonal spreading-code sequences of the compositecode type, and for selecting unique sets of the sequences so generatedfor assignment to corresponding nodes of a multi-node digitalcommunication network according to the present invention.

FIG. 2 is a schematic illustration of an alternative embodiment of aspreading-code sequence generator for use in the apparatus of FIG. 1,which allows register taps to be arbitrarily selected for summation(i.e., “EXCLUSIVE OR”) and feedback functions.

FIG. 3 is a schematic illustration of another alternative embodiment ofa spreading-code sequence generator for use in the apparatus of FIG. 1,wherein one of the modulo-2 adders (i.e., “EXCLUSIVE OR” circuits) shownin FIG. 1 is omitted, which enables a maximal-length linear recursivesequence (MLLRS) to be used as one of the possible spreading-codesequences.

FIG. 4 is a schematic illustration of yet another alternative embodimentof a spreading-code sequence generator for use in the apparatus of FIG.1, which allows information to be transmitted by switching in registercontents (called “fills”) obtained from look-up tables at the beginningof each symbol interval.

FIG. 5 is a schematic representation of a procedure according to thepresent invention whereby two sequences are selected from the set ofsequences that are available to a given node of the network formodulating two sinusoidal carriers, which are of the same frequency butwhich differ in phase by 90°.

FIG. 6 is a schematic representation of a procedure according to thepresent invention whereby the set of spreading-code sequences availableto a given node of the network is partitioned into two subsets, andwhereby sequences are selected from each of the subsets and modulatedonto orthogonal carriers.

FIG. 7 is a schematic representation of a procedure according to thepresent invention whereby three sequences are selected from the set ofsequences that are available to a given node of the network, and arecombined so as to be capable in effect of modulating three sinusoidalcarriers of the same frequency but with relative phases of 0°, 60° and120°.

FIG. 8 is a schematic representation of a procedure according to thepresent invention whereby four sequences are selected from the set ofsequences that are available to a given node of the network, and arecombined so as to be capable in effect of modulating four sinusoidalcarriers of the same frequency but with relative phases of 0°, 45°, 90°and 135°.

FIG. 9 is a schematic representation of a procedure according to thepresent invention whereby externally generated spreading-code sequencesserve as inputs to two shift registers for generating uniquespreading-code sequences.

FIG. 10 is a block diagram of a transmitter for use by a node of amulti-node digital communication network according to the presentinvention.

FIG. 11 is a block diagram of a receiver for use by a node of amulti-node digital communication network according to the presentinvention.

FIG. 12 is a block diagram of a correlation unit of the receiver of FIG.11, which correlates each in-coming spreading-code sequence detected bythe receiver with all the spreading-code sequences that are available tothe node.

BEST MODE OF CARRYING OUT THE INVENTION

In accordance with the present invention, a family of “almostorthogonal” binary sequences is generated to provide disjoint sets ofspreading-code sequences that can be assigned to corresponding nodes ofa multi-node digital communication network. Each node of the network isallotted multiple spreading-code sequences, which are selected from thetotal number of available sequences provided by the family of “almostorthogonal” binary sequences. The spreading-code sequences assigned tothe various nodes of the network are all modulo-2 sums (i.e., “EXCLUSIVEOR” outputs) of the contents (also called the “fills”) of successivestages in two so-called “shift registers.”

The binary sequences from which the disjoint sets of spreading-codesequences are selected for assignment to the nodes of the network aresaid to be “almost orthogonal” because the selected binary sequences allhave low auto-correlation values (except for offset 0), and all have lowcross-correlation values relative to each other, where theauto-correlations and the cross-correlations are performed over aspecified number of bits that defines a so-called “symbol interval.” Foralgebraically generated periodic linear recursive sequences that areselected for their favorable auto-correlation and cross-correlationproperties the optimum symbol interval for a given sequence coincideswith the period of the sequence. For sequences generated by a non-linearrandom number generator, and for linear recursive sequences of very longperiod, the symbol interval for a given sequence can be chosenarbitrarily—in which case the auto-correlation and cross-correlationproperties of the sequences cannot be guaranteed, but have the usualstatistics for correlations of random sequences.

An example of a set of binary spreading-code sequences that could beused in a multi-node digital communication network according to thepresent invention would be a set of Gold code sequences, each of whichis generated by the product f₁ f₂ of a “preferred pair” (f₁, f₂) ofprimitive polynomials of the same degree n over the field GF(2), i.e.,the algebraic field of two elements 0 and 1. A primitive polynomial overGF(2) is a polynomial that generates a maximal-length linear recursivesequence (MLLRS). If the degree of the primitive polynomials f₁ and f₂is n, the period of the Gold code sequences generated by the productf₁f₂ is (2^(n)−1).

Another example of a set of binary spreading-code sequences that issuitable for use in a multi-node digital communication network would bea set of so-called “symmetric” sequences, each of which is generated bythe product f₁ f₂, where f₁ and f₂ are primitive polynomials, and wheref₂ is the “reverse” of f₁, i.e., f₂(x)=x^(n)f₁ (1/x), where n=deg f₁=degf₂.

Yet another example of a set of binary spreading-code sequences thatcould be employed in a multi-node digital communication networkaccording to the present invention would be a set of Kasami codesequences, each of which is generated by a product f₁f₂, where f₁ and f₂are primitive polynomials such that the degree of one of the polynomialsdivides the degree of the other.

The auto-correlation properties of composite-code sequences (e.g., Goldcode sequences, symmetric code sequences and Kasami code sequences), andthe cross-correlation properties of families of such composite-codesequences over an entire period, are described in the aforementionedarticle by M. B. Pursley et al. wherein such sequences are shown to be“almost orthogonal.”

Alternatively, a set of random spreading-code sequences could also beused in practicing the present invention. While composite-code sequencesare especially useful and convenient for particular embodiments of amulti-node digital communication network according to the presentinvention, it is not necessary to limit the invention in principle tothe use of any particular kinds of spreading-code sequences. The salientcharacteristic of a network according to the present invention is atwo-register sequence generator, which enables multiple spreading-codesequences to be obtained by combining the outputs of selected stages ofeach of the two registers.

Various embodiments of a multi-node digital communication networkaccording to the present invention are described hereinafter. In each ofthese embodiments, a family of binary spreading-code sequences can begenerated using Gold code sequences, or “symmetric” sequences, or Kasamicode sequences, or any other suitable sequence generation scheme. Fromthe family of binary spreading-code sequences so generated, a unique setof multiple spreading-code sequences is assigned to each node of thenetwork. Specified codes, or their reciprocals (i.e., codes of oppositepolarity), are selected periodically for transmission by each node,where the particular codes and polarities that are selected in aparticular case depend upon the information to be conveyed. Sinceinformation is conveyed in blocks, Reed-Solomon coding (or any othersuitable coding scheme) can optionally be used to provide forward errorcontrol.

Symbol decision methods (i.e., methods that can be used by a receiver todetermine the most likely transmitted sequence or sequences) can varyfor different embodiments of the present invention. In each embodiment,the receiver identifies those particular incoming sequences having thestrongest correlation values, and determines their polarities. Thedecision logic algorithm for each embodiment determines the most likelytransmitted sequence or sequences from the correlation values.

If Gold code sequences, or “symmetric” sequences, or Kasami codesequences are used as the spreading-code sequences, mathematicallyguaranteed cross-correlation properties of those sequences over anentire period can be exploited by taking the symbol interval to be equalto the period of the spreading-code sequences. According to one methodfor ensuring that modulation is “balanced” (i.e., that equal numbers of0's and 1's are transmitted during each symbol interval), the symbolinterval is taken to be equal to twice the period of the spreading-codesequences, and the spreading-code sequences are transmitted so that acomplete sequence is transmitted during the first half of a symbolinterval and so that the reciprocal of that sequence is transmittedduring the second half of the symbol interval. This method produces afactor-of-two decrease in the symbol rate for a given “chip rate” (i.e.,the rate at which individual bits of the spreading-code sequences aretransmitted).

Acquisition and maintenance of synchronization for spread-spectrumsignals have been widely discussed in published literature. In eachembodiment of the present invention, synchronization of each incomingsequence with the spreading-code sequences that have been assigned to agiven node is acquired by conventional means. Synchronization ismaintained, and the possibility of false synchronization is minimized,by using a two-register sequence generator to generate candidatespreading-code sequences that are to be correlated with each incomingsequence. If synchronization of an incoming sequence with the sequencesassigned to the given node is lost, that incoming sequence does notcorrelate strongly with any of the candidate spreading-code sequences.However, if synchronization is maintained, the incoming sequences thatare most likely to be signals transmitted by other nodes of the networkare determined. A stream of information bits is then assembled from theincoming sequences identified as likely to be information-bearingsignals. If forward error correction has been used, the information bitstream is decoded to determine the information originating at thetransmitting node of the network.

A specified number K of available spreading-code sequences is assignedto each node of a network according to the present invention. The numberof information bits that can be conveyed per symbol varies directly withthe value of the number K. If the total number of spreading-codesequences available to the network is N, then the maximum number ofnodes that can be accommodated by the network is N/K. Thus, there is atrade-off between the number of information bits that can be conveyedper symbol and the maximum number of nodes that can be accommodated bythe network.

In embodiments of the present invention in which composite codes areemployed, the individual spreading-code sequences assigned to a givennode of the network may be specified by feedback taps associated withthe polynomials f₁ and f₂, and by the initial “fills” (i.e., contents)of shift registers corresponding to the polynomials f₁ and f₂. Variousmethods can be used to specify the polynomials f₁ and f₂, and to specifythe initial fills of the f₁-register (i.e., the register whose feedbacktaps correspond to the polynomial f₁) and the f₂-register (i.e., theregister whose feedback taps correspond to the polynomial f₂) for eachnode of the network. A preferred method is for the fill associated withthe polynomial f₁ to remain always the same for all the nodes of thenetwork, and for the initial fill associated with the polynomial f₂ foreach particular node to be specified or derived from a specified fill.Thus, the unchanging fill for the f₁-register for every node of thenetwork could consist of the so-called “impulse fill,” i.e., a 1 as thecontent of the first stage of the register and 0's as the contents ofthe remaining stages of the register. If there are V nodes in thenetwork and each node is identified by a corresponding integer v, where0≦v≦V−1, and if K spreading-code sequences are assigned to each node,the initial fill for the f₂-register of the with node could be obtainedby first loading the f₂-register with the initial fill of the networkcontroller (designated as “node 0”), and then stepping the f₂-registerKv times.

If composite codes are used for the spreading-code sequences, and if thenumber of “composite sequences” assigned to each node of the networkequals or exceeds KV, where a “composite sequence” is the modulo-2 sumof a non-zero sequence generated by f₁ and a non-zero sequence generatedby f₂, the aforedescribed method is sufficient for specifying theinitial fills of the f₁-register and the f₂-register. For example, ifGold code sequences are used for which deg f₁=deg f₂=n, theaforedescribed method is sufficient for specifying the initial fills ofthe f₁-register and the f₂-register, provided that KV≦(2^(n)−1). IfKV=2^(n), the MLLRS generated by either f₁ or f₂ must be used by one ofthe nodes as one of its symbols. If KV=(2^(n)+1), the MLLRS generated byf₁ and the MLLRS generated by f₂ must both be used (either both of theMLLRSs by one node, or each of the MLLRSs by a different node) assymbols. The assignment of initial fills to the two registers must thenbe modified accordingly.

Embodiment I

In a particular embodiment of a multi-node digital communication networkaccording to the present invention as illustrated in FIG. 1, a compositecode sequence (e.g., a Gold code sequence, a symmetric sequence, aKasami code sequence, or the like) is used as the spreading-codesequence, and one sequence at a time is transmitted. The number K ofspreading-code sequences assigned to each node of the network is 2^(r),where r is a positive integer such that 1≦r≦[log₂(M₁+M₂−1)], where[log₂(M₁+M₂−1] denotes the “greatest integer” function, where M₁ and M₂represent the numbers of stages in corresponding registers of thetwo-register spreading-code sequence generator. In the followingdiscussion, it is assumed that M₁=M₂=M. Modification of the discussionto accommodate a situation in which the registers have different“lengths” (i.e., different numbers of stages) is straightforward.

A spread-spectrum digital communication system according to the presentinvention can be constructed for the most part from commerciallyavailable components. Specially designed components are required onlyfor the spreading-code sequence generator and associated parallelsequence correlators. In FIG. 1, a spreading-code sequence generator isillustrated, which comprises a pair of so-called “shift registers” forproducing a corresponding pair of spreading-code sequences. Inprinciple, however, a sequence generator that produces more than twospreading-code sequences could be used in practicing the presentinvention. A “shift register” basically comprises a set of “stages”(also called “flip-flops”), which are coupled so that the contents ofone stage can be transferred to a different stage upon the occurrence ofan externally generated timing pulse.

The spreading-code sequence generator illustrated in FIG. 1 comprisestwo “shift registers” 10 and 11, which produce two correspondingspreading-code sequences. The shift registers 10 and 11 are illustratedin FIG. 1 as being of the same size M (i.e., both have the same numberof stages); although there is no requirement in principle that both ofthe shift registers 10 and 11 have the same number of stages. For theembodiment illustrated in FIG. 1, each of the shift registers 10 and 11has a size indicated by the parameter M=7, which indicates seven“stages” or “flip-flops.” The number of stages provided in commerciallyavailable shift registers is usually a multiple of 8.

Each of the shift registers 10 and 11 is “driven” by a polynomial, whichis one of a preferred pair of primitive polynomials f₁ and f₂ of degreen, where n≦M. A set of feedback taps 12 is provided to “drive” the shiftregister 10, and a set of feedback taps 13 is provided to “drive” theshift register 11. For purposes of illustration, the polynomials f₁ andf₂ are of degree n=5. The feedback taps 12 correspond to the polynomialf₁ (x)=1+x²+x⁵; and the feedback taps 13 correspond to the polynomialf₂(x)=1+x+x²+x⁴+x⁵.

A “symbol selection” unit 20 receives corresponding spreading-codesequences from the shift registers 10 and 11. The purpose of the symbolselection unit 20 is to select one of the spreading-code sequencesproduced by the shift registers 10 and 11 for transmission to amodulator during each specified symbol interval. The symbol selectionunit 20 also receives a sequence of information bits provided by aninformation source 22. These information bits may be encrypted andencoded, as discussed hereinafter.

If 2^(r) spreading-code sequences are available to each node of thenetwork, the stream of information bits is partitioned into blocks of(r+1) bits. The first r of these bits serve as an address in a table,which contains the number of the spreading-code sequence to betransmitted during the next symbol interval. The (r+1)th bit is a“differential encoding” bit, which determines whether the sequence to betransmitted during the next symbol interval is “inverted” (i.e.,complemented modulo-2) or “upright” (i.e., not inverted). Thus, if the(r+1)th bit is a 1, the next transmitted sequence has a “polarity”opposite that of the current sequence; and if the (r+1)th bit is a 0,the next transmitted sequence has the same “polarity” as the currentsequence. For example, if the current sequence is upright, and the(r+1)th bit is a 1, the next transmitted sequence is inverted.Similarly, if the current sequence is upright, and the (r+1)th bit is a0, the next transmitted sequence is upright.

The technique of partitioning information bits into blocks of bits(i.e., the “blocking” of encrypted bits) as described above isespecially well suited to the use of Reed-Solomon spreading-codesequences. In the foregoing example in which 2^(r) spreading-codesequences are available to each node of the network, (r+1)-bit blocks ofinformation are interpreted by a Reed-Solomon encoder as elements of thefinite field GF(2^(r+1)). These field elements are assembled into blocksto which redundant field elements are appended in accordance with theparticular Reed-Solomon coding scheme used. A discussion of Reed-Solomoncodes is found in a text by F. J. MacWilliams and N. J. A. Sloaneentitled The Theory of Error Correcting Codes, North-Holland PublishingCompany, New York, (1978), pp. 301-305. Reed-Solomon codewords are thenfurnished to the symbol selection unit 20, which uses each field elementof (r+1)-bits to select a sequence and a polarity for transmissionduring the next symbol interval.

In FIG. 2, a more general configuration for the spreading-code sequencegenerator is shown, which enables the individual register taps to bearbitrarily selected for the summation (i.e., EXCLUSIVE OR) and feedbackfunctions. In the configuration of FIG. 2, the locations of the feedbacktaps are not “hardwired,” but are programmable. Thus, the particulargenerating polynomials f₁ and f₂ can be arbitrarily assigned, and can bechanged periodically if desired. As indicated in FIG. 2, parameters t₀,. . . , t₆ and s₀, . . . , s₆ represent corresponding stages in theshift registers 10 and 11, respectively. Each of the parameters t₀, . .. , t₆ and s₀, . . . , s₆ takes the value 1 or 0 according as thecorresponding register stage is tapped or not tapped.

Regardless of the type of sequence generator used (i.e., whether of the“hardwired” type as illustrated in FIG. 1 or of the programmable type asillustrated in FIG. 2), if the sequence of 0's and 1's emanating from aparticular stage of one register (e.g., the “bottom stage” of the upperregister as shown in either FIG. 1 or FIG. 2) is denoted by {a_(k)}, andif the sequence of 0's and 1's emanating from a correspondinglyparticular stage of the other register (e.g., the “top stage” of thelower register as shown in FIG. 1 or FIG. 2) is denoted by {b_(k)}, the(2M−1) spreading-code sequences available from the modulo-2 adders are{a_(k)+b_(k-i)}, where i=1, 2, . . . , M−1, and {a_(k-i)+b_(k)}, wherei=0, 1, . . . , M−1.

These spreading-code sequences, {a_(k)+b_(k-i)} and {a_(k-i)+b_(k)}, aredistinct from each other. In the case where Gold code sequences areused, the sequences {a_(k)+b_(k-i)} and {a_(k-i)+b_(k)} constitute asubset of size (2M−1) of a set of (2^(n)+1) non-zero linear recursivesequences generated by the polynomial product f₁ f₂. Only (2^(n)−1) ofthe (2^(n)+1) spreading-code sequences generated by the polynomialproduct f₁ f₂ have the product f₁ f₂ as their “minimal polynomial.” Theother two sequences, viz., {a_(k)} and {b_(k)}, are generatedindividually by polynomials f₂ and f₁, respectively.

The sequences {a_(k)} and {b_(k)} may be accessed by omitting one of theadders shown in FIG. 1, thereby obtaining sequences generated by f₁ orf₂ alone, as illustrated in FIG. 3.

When M<2^(r)≦2M−1, it is advantageous for the 2^(r) spreading-codesequences that are available to each node of the network to be allocatedbetween a subset of 2^(r−1) so-called “upper sequences” of the form{a_(k) ⊕b_(k-i)}, and a subset of 2^(r−1) so-called “lower sequences” ofthe form {a_(k) ⊕b_(k-i)}. However, when 2^(r)≦M, it is preferable forall of the spreading-code sequences to be selected from either the uppersequences or the lower sequences. Within a given subset (e.g., a subsetconsisting only of the upper sequences, or a subset consisting only ofthe lower sequences), the cross-correlations between differentspreading-code sequences are effectively correlations between differentoffsets of the same maximal-length linear recursive sequence (MLLRS) andhave the value −1, which is very small compared to the length of thesequence (2^(n)−1). In contrast, the correlation between a sequenceselected from the subset of upper sequences and a sequence selected fromthe subset of lower sequences has a magnitude of either 1 or2^([(n+1)/2]), assuming Gold code sequences are used, where2^([(n+1)/2]) is small compared to (2^(n)−1) but large compared to 1.Thus, if 2^(r)≦M, optimal cross-correlation properties among all thespreading-code sequences assigned to a given node can be assured byselecting all of the spreading-code sequences from the same subset ofeither upper sequences or lower sequences. If M<2^(r)≦2M−1, optimalcross-correlation properties among all the spreading-code sequencesassigned to a given node can be substantially achieved by selecting2^(r−1) spreading-code sequences from each of the subsets of upper andlower sequences, and by using an appropriate symbol detection scheme asdescribed hereinafter.

When the two correlations of largest magnitude from among all thecorrelations between each of the candidate spreading-code sequencesassigned to a particular node and an incoming spreading-code sequencereceived by that node are so close in magnitude that it is impossible onthe basis of the correlation values alone to determine reliably whichone of those two candidate sequences is the “correct” sequence (i.e.,the sequence bearing the information intended for that particular node),the following procedure can then be initiated to determine the “correct”sequence. The set of 2^(r) spreading-code sequences is considered toconsist of two subsets, viz., the “upper sequences” and the “lowersequences” described above, each of which consists of 2^(r−1) sequences.For each of the two subsets, a “punctured” sum of the correlationmagnitudes (i.e., the sum of all the correlation values except thelargest one) is computed. The subset having the smaller “punctured” sumis then assumed to be the “correct” subset, i.e., to contain the“correct” spreading-code sequence. The “correct” spreading-code sequenceis then identified as the sequence within the “correct” subset that hasthe largest correlation magnitude with respect to the incomingspreading-code sequence.

The rationale for assuming that the “correct” spreading-code sequence(i.e., the sequence bearing the information intended for the particularnode) is contained in the subset having the smaller “punctured” sum isgrounded on the fact that the correlation values between differentsequences within the “correct” subset must all have a magnitude of 1,whereas the magnitudes of the correlation values of spreading-codesequences in different subsets are either 1 or 2^([(n+1)/2]) with equalprobability. Consequently, when an errorless spreading-code sequence iscorrelated with all of the 2^(r) spreading-code sequences that arecandidates for selection, the “punctured” sum of the correlationmagnitudes for the subset containing the “correct” incoming sequence is(2^(r−1)−1), whereas the “punctured” sum of the correlation magnitudesthat would be expected for the subset containing an “incorrect” incomingsequence is 2^(r−2)+(2^(r−2)−1)2^([(n+1)/2]), assuming that thecorrelation magnitudes for spreading-code sequences from the “incorrect”subset are divided equally between the values 1 and 2^([(n+1)/2]). Theratio between the largest and the smallest “punctured” sums, which maybe considered as the “expected margin” between the subset containing the“correct” sequence and the subset containing an “incorrect” sequence, isapproximately 2^([(n-1)/2]).

The foregoing analysis assumes that 2^(r−2) of the 2^(r−1) sequences inthe “incorrect” subset have correlation magnitudes of 1 with respect tothe “correct” incoming sequence, and that the 2^(r−2) remainingsequences in the “incorrect” subset have correlation magnitudes of2^([(n+1)/2]). However, this assumption actually only represents anaverage condition. As r increases in value within the range 2^(r)≦2M−1,the assumption becomes more accurate, provided that each of thecorrelation magnitudes 1 and 2^([(n+1)/2]) independently occurs with aprobability of 0.5. This “balance” between the subsets of upper andlower sequences increases as the value of r increases. Thus, theprobability of selecting the “correct” subset increases as the number2^(r) of spreading-code sequences increases.

The “symbol decision” logic by which the spreading-code sequencesassigned to the individual nodes of a multi-node digital communicationsnetwork as illustrated in FIG. 1 are selected is described as follows.Let L and N denote the spreading-code sequences corresponding to thelargest and the next-largest correlation magnitudes, respectively, of aset of 2^(r) “symbols” (i.e., sequences). For purposes of thisdiscussion, the designations L and N can denote both the sequences andalso the magnitudes of the correlations of these sequences with thereceived signal. To determine the “correct” symbol, first compute theratio R=L/N, and then compare R with a selectable first threshold valueT₁. If R>T₁, choose L. If R≦T₁, then a “symbol decision” algorithm isutilized as follows:

-   -   1) If L and N are sequences in the same subset, declare an        erasure. If L and N are not in the same subset, then for each of        the two subsets compute the sum of all correlation magnitudes        except the largest correlation magnitude in each subset (i.e.,        except L and N). Denote the subset corresponding to the smaller        of these two sums by S₁, and the subset corresponding to the        larger of these two sums by S₂. Let N₁ denote the next-largest        correlation magnitude in S₁.    -   2) If L is in S₁ and N is in S₂, compare the ratio L/N₁ with a        selectable second threshold value T₂. If, L/N₁>T₂ choose L. If        L/N₁≦T₂, then declare an erasure.    -   3) If L is in S₂ and N is in S₁, then if N/N₁>T₂, choose N; and        if N/N₁≦T₂, declare an erasure.

Using the foregoing algorithm, it is possible for strong correlationsbetween candidate spreading-code sequences and the information-bearingsequences that are actually transmitted by other nodes of the network tobe rejected. Regardless of whether all the candidate spreading-codesequences are selected from the same subset of upper or lower sequences,or are equally divided between sequences from each subset, a “symboldecision” error can occur when a signal from an unintended node of thenetwork strongly correlates with one of the candidate spreading-codesequences, or when a sequence belonging to the intended node correlatesmore strongly than does the “correct” sequence with the received signal.The probability of such a strong correlation occurring decreases as thenumber 2^(r) of spreading-code sequences per node increases. Thus, theuse of multiple spreading-code sequences per node not only providesrobustness, but also reduces the effect of the “near-far” problem.

In principle, any number of temporally contiguous bits can be designatedas a “symbol.” However, if composite code sequences (e.g., Gold codesequences, symmetric sequences, or Kasami code sequences) are used asthe spreading-code sequences, advantageous auto-correlation andcross-correlation properties can be guaranteed only if the correlationsare performed over an entire period of each sequence in the family ofpossible sequences. Thus, it is advantageous to designate the entireperiod of a composite code sequence as the “symbol.” If each node of thenetwork can use 2^(r) spreading-code sequences, then each symbolrepresents r bits. The “inverse” (or “reciprocal”) of a symbol is formedby replacing each 0 by a 1, and each 1 by a 0. By transmitting theinverse of a symbol along with the symbol, an additional bit ofdifferentially encoded information per symbol can be transmitted. Thus,the information rate that can be achieved using a network as illustratedin FIG. 1 is

$\frac{c\left( {r + 1} \right)}{\left( {2^{n} - 1} \right)},$

where c is the number of chips (i.e., bits of the spreading-codesequence) transmitted per second.

To ensure that there is a balance between the number of 1's and 0'stransmitted, a symbol interval could be taken to be equal to theduration of two periods of a spreading-code sequence. Oppositepolarities of the spreading-code sequence would be transmitted duringthe first and second halves of the symbol interval. This technique wouldincrease the processing gain, but would decrease the information rate bya factor of 2. In practice, it should not be necessary to use thistechnique if the information-bearing sequence is random, becausepolarity inversions of random sequences occur approximately half thetime anyway. Input sequence randomizers are commonly employed in digitalcommunication systems, and use of such an expedient can be assumed whereappropriate in practicing the present invention.

In an alternative embodiment of the present invention as illustrated inFIG. 4, only one spreading-code sequence is selected for transmissionduring a given symbol interval. After a particular symbol has beentransmitted, appropriate register fills for the next symbol are “lookedup” from a table and are “switched in.” Where the registers are drivenby polynomials (as where composite codes are used for the spreading-codesequences), the use of a “look up” table is a preferred embodiment thatminimizes hardware requirements for the transmitter (but not for thereceiver). In FIG. 4, the last two stages of each of the registers 10and 11 are unnecessary, because the number of bits in the “switched-in”fills need be no greater than the degrees of the polynomials thatgenerate the linear recursive sequences. Furthermore, in the embodimentof FIG. 4, the number of spreading-code sequences that can be assignedto each node is not limited by the register length M as is the case inthe embodiment of FIG. 1 in which the number of sequences available tothe node is bounded above by 2M−1.

The technique described above for transmitting information by usingmultiple “almost-orthogonal” spreading-code sequences according to thepresent invention provides performance advantages over other modulationschemes that have been used in the prior art. According to the techniquedescribed above, the number of bits of information per symbol increasesas the number 2^(r) of spreading-code sequences increases, yet the“distance” between symbols (i.e., the cross-correlation values of thesequences) does not change as the number 2^(r) of spreading-codesequences increases. This is contrary to the usual situation encounteredin digital communication systems that utilize, e.g.,quadrature-amplitude modulation (QAM).

In QAM systems, amplitude-phase states function as symbols. Thus, anincrease in the number of amplitude-phase states results in an increasein the information rate of a QAM system, but also results in an increasein the bit-error rate. The increase in the bit-error rate occursbecause, for a given average energy level, the amplitude-phase statesbecome “closer” to each other in the Euclidean sense (i.e., the distancebetween adjacent amplitude-phase states decreases) as the number ofamplitude-phase states increases, thereby making them harder todistinguish from each other. However, where orthogonal spreading-codesequences function as symbols, as in the present invention, the symbolsare never “close” to each other regardless of the number of symbolsused. Consequently, for systems that utilize orthogonal spreading-codesequences, the symbol error rate does not increase as rapidly as theinformation rate when the number of symbols increases.

In TABLE I, values for various performance-measuring parameters arelisted as functions of the parameters n and K for a network according toa first embodiment of the present invention as illustrated in FIGS. 1-4.A “chip rate” (i.e., the number of bits of the spreading-code sequencetransmitted per second) of 2.5 MHz is arbitrarily assumed, although inpractice the chip rate can be chosen to optimize system parameters suchas bandwidth and information rate for the particular application. If adifferent chip rate were to be used, the information rate could beobtained by multiplying the appropriate value in the last column ofTABLE I (i.e., the BPSK modulation rate) by c/2.5 MHz, where c is thenumber of chips transmitted per second expressed in MHz. The embodimentof FIGS. 1-4 is operated in a mode in which a single spreading-codesequence modulates a carrier to generate a BPSK signal, where n is thedegree of the polynomials f₁ and f₂ used for generating thespreading-code sequences, and where K is the number of sequences peruser.

Also listed in TABLE I are useful measures of processing gain fordifferent degrees of the polynomials f₁ and f₂. The first number in eachentry in the column labeled “Processing Gain” is the value for 10 log₁₀(2¹−1) expressed in dB, which represents the processing gain againstother spreading-code sequences assigned to the given node, assuming thatsynchronization is maintained and that the correct subset is chosen(when applicable, as discussed above). The second number, which is shownin parentheses, in each entry in the column labeled “Processing Gain”represents the processing gain against spreading-code sequencestransmitted by other nodes in the network, using the same polynomials f₁and f₂ for generating the spreading-code sequences.

TABLE I Information Information Rate Processing Sequences Rate Number of(kbits/sec) Degree Gain per Node (bits/period) Nodes BPSK n (dB) K =2^(r) r + 1 2^(n−r) (2.5 MHz) 8 24 (12) 16 5 16 49.0 8 32 6 8 58.8 9 27(13) 16 5 32 24.5 9 32 6 16 29.4 10 30 (15) 32 6 32 14.7 10 64 7 16 17.111 33 (16) 32 6 64 7.3 11 64 7 32 8.5 12 36 (13) 16 5 256 3.1 12 32 6128 3.7 12 64 7 64 4.3 13 39 (19) 32 6 256 1.8 14 42 (21) 32 6 512 0.914 64 7 256 1.1

Embodiment II

In an alternative embodiment of the present invention, as illustrated inFIG. 5, two spreading-code sequences are selected from among all theavailable spreading-code sequences generated by the shift registers 10and 11 during each period of the sequences. The selected sequences areused to modulate the “in-phase” arm and/or the “quadrature” arm, (alsocalled the I-arm and the Q-arm), respectively, of a sinusoidal carrier.Modulation of the I-arm and the Q-arm can be achieved using a quaternaryphase-shift keyed (QPSK) modulation, an offset QPSK (also called anOQPSK) modulation, a quadrature partial response (QPR) modulation, orany other type of quadrature modulation. If K spreading-code sequencesare available to each node of the network, there are

$\frac{K\left( {K - 1} \right)}{2}$

possible pairs of spreading-code sequences that can be transmitted persymbol interval. Thus, by selecting two of the K availablespreading-code sequences for transmission during each symbol interval,

$\left\lbrack {\log_{2}\frac{K\left( {K - 1} \right)}{2}} \right\rbrack$

bits of information can be conveyed per symbol.

If the polarities of the spreading-code sequences can be selectivelyinverted or not inverted, another information bit can be conveyed persymbol so as to increase the total number of bits of information thatcan be conveyed per symbol to

$1 + {\left\lbrack {\log_{2}\frac{K\left( {K - 1} \right)}{2}} \right\rbrack.}$

Thus, for example, if K=9, the number of information bits per symbol is1+[log₂ 36]=6. The two sequences to be transmitted during each symbolinterval are chosen by table lookup. Whether or not to invert thespreading-code sequences is determined by differential encoding of oneof the six bits.

In TABLE II, values for various performance-measuring parameters arelisted as functions of the parameters n and M for a network asillustrated in FIG. 5, again assuming a chip rate of 2.5 MHz. Thespreading-code sequence generator shown in FIG. 4 has a coherentreceiver, so as to be able to distinguish and track the I-arm and theQ-arm of the carrier. It is possible that a given spreading-codesequence could appear in the I-arm during one symbol interval, and inthe Q-arm during another symbol interval.

TABLE II Degree n Processing Gain (dB) Sequences per Node K InformationRate (bits/period)$1 + \left\lbrack {\log_{2}\frac{K\left( {K - 1} \right)}{2}} \right\rbrack$Number of Nodes$\left\lbrack \frac{\left( {2^{n} + 1} \right)}{K} \right\rbrack$Information Rate (kbits/sec) (2.5 MHz) 8 24(12) 9 6 28 68.6 8 12 7 2178.4 9 27(13) 9 6 57 34.2 9 12 7 42 39.1 9 17 8 30 44.0 9 24 9 21 48.910 30(15) 9 6 113 17.1 10 12 7 85 19.6 10 17 8 60 22.0 10 24 9 42 24.411 33(16) 9 6 227 8.5 11 12 7 170 9.8 11 17 8 120 11.0 11 24 9 85 12.211 33 10 62 13.4 12 36(18) 9 6 455 4.3 12 12 7 341 4.9 12 17 8 241 5.512 24 9 170 6.1 12 33 10 124 6.7

Embodiment III

In a third embodiment of the present invention as illustrated in FIG. 6,two spreading-code sequences are selected during each symbol interval,viz., one “upper” sequence and one “lower” sequence from each of theshift registers 10 and 11. If the number of spreading-code sequencesavailable to each node of the network is K=2^(r), each subset contains2^(r−1) sequences, so that 2(r−1) bits of information can be transmittedper symbol interval. If the polarity of each spreading-code sequence isselectively inverted, or not, according to a differential coding scheme,then 2+[2(r−1)]=2^(r) information bits per symbol interval aretransmitted. For example, if K=8, then six information bits per symbolare transmitted.

Since symbol decisions are made within each subset of spreading-codesequences, there is no need to choose the “correct” subset in order toidentify the “correct” spreading-code sequence. Thus, decision logic isconsiderably simplified. Also, symbol decisions are made betweensequences that have optimal cross-correlation properties.

In TABLE III, values are given for the same performance parameters aslisted above for the first and second embodiments, again assuming a chiprate of 2.5 MHz.

TABLE III Information Processing Information Rate Degree Gain SequencesRate Number of (kbits/sec) n (dB) per Node (bits/period) Nodes (2.5 MHz)8 24 (12) 8 6 32 58.8 8 16 8 16 78.4 8 32 10 8 98.0 9 27 (13) 8 6 6429.3 9 16 8 32 39.1 9 32 10 16 48.9 9 64 12 8 58.7 10 30 (15) 8 6 12814.7 10 16 8 64 19.6 10 32 10 32 24.4 10 64 6 16 29.3 11 33 (16) 8 6 2567.3 11 16 8 128 9.8 11 32 10 64 12.2 11 64 12 32 14.7 12 36 (18) 8 6 4554.3 12 16 8 256 4.9 12 32 10 128 6.1 12 64 12 64 7.3

Embodiment IV

In a fourth embodiment of the present invention as illustrated in FIG.7, three spreading-code sequences are selected during each symbolinterval for simultaneous transmission using phase-shift keyed (PSK)modulation. The sequence generators shown in FIG. 7 are substantiallythe same as shown in FIG. 5, except that three spreading-code sequences(rather than two as shown in FIG. 5) are selected and transmitted to themodulator. The three spreading-code sequences are used to modulate acarrier having three components, which are 60° out of phase.

Besides the processing gain available due to the quasi-orthogonality ofthe spreading-code sequences in the embodiment illustrated in FIG. 7,the phase difference between carriers provides an additional 6 dB ofprocessing gain, as can be seen by computing the correlation between twosinusoidal signals that are 60° out of phase.

If the number of spreading-code sequences available to the node is K,the number of information bits that can be transmitted per symbolinterval (including one bit corresponding to whether the spreading-codesequences are transmitted “upright” or “inverted”) is given by

$1 + {\left\lbrack {\log_{2}\frac{K\left( {K - 1} \right)\left( {K - 2} \right)}{6}} \right\rbrack.}$

In TABLE IV, values are given for the same performance parameters aslisted above for the first, second and third embodiments, again assuminga chip rate of 2.5 MHz.

TABLE IV Information Processing Information Rate Degree Gain SequencesRate Number of (kbits/sec) n (dB) per Node (bits/period) Nodes (2.5 MHz)8 12 9 7 28 68.6 8 11 8 23 78.4 8 14 9 18 88.2 8 17 10 15 96.0 8 20 1112 105.6 9 13.5 9 7 57 34.2 9 11 8 46 39.1 9 14 9 36 44.0 9 17 10 3048.9 9 20 11 25 53.8 10 15 9 7 113 17.1 10 11 8 93 19.5 10 14 9 73 22.010 17 10 60 24.4 10 20 11 51 26.8 11 16.5 9 7 227 8.5 11 11 8 186 9.8 1114 9 146 11.1 11 17 10 120 12.3 11 20 11 102 13.5 12 18 9 7 455 4.3 1211 8 372 4.9 12 14 9 292 5.5 12 17 10 241 6.1 12 20 11 204 6.7

Embodiment V

In FIG. 8, a fifth embodiment of the present invention is illustrated,in which four spreading-ode sequences are transmitted per symbolinterval using “quaternion” phase-shift keyed modulation. The sequencegenerators shown in FIG. 8 are substantially the same as shown in FIG.5, except that four spreading-code sequences (rather than two as shownin FIG. 5) are selected and transmitted to the modulator. The fourspreading-code sequences are used to modulate a carrier having fourcomponents, which are 45° out of phase.

Besides the processing gain available due to the quasi-orthogonality ofthe spreading-code sequences in the embodiment illustrated in FIG. 8,the phase difference between carriers provides an additional 3 dB ofprocessing gain, as can be seen by computing the correlation between twosinusoidal signals that are 45° out of phase.

If the number of spreading-code sequences available to a node is K, thenumber of information bits that can be transmitted per symbol interval(including one bit corresponding to whether the spreading-code sequencesare transmitted “upright” or “inverted”) is given by

$1 + {\left\lbrack {\log_{2}\frac{K\left( {K - 1} \right)\left( {K - 2} \right)\left( {K - 3} \right)}{24}} \right\rbrack.}$

For example, if K=8, the number of information bits that can betransmitted per symbol is 7. In TABLE V, values are given for the sameperformance parameters as listed above for the other embodiments, againassuming a chip rate of 2.5 MHz.

TABLE V Information Processing Information Rate Degree Gain SequencesRate Number of (kbits/sec) n (dB) per Node (bits/period) Nodes (2.5 MHz)8 12 8 7 32 68.6 8 10 8 25 78.4 8 11 9 23 88.2 8 13 10 19 98.0 8 15 1117 107.8 8 17 12 15 117.6 9 13.5 8 7 64 34.2 9 10 8 51 39.1 9 11 9 4644.0 9 13 10 39 48.9 9 15 11 34 53.8 9 17 12 30 58.7 10 15 8 7 128 17.110 10 8 102 19.6 10 11 9 93 22.0 10 13 10 78 24.4 10 15 11 68 26.9 10 1712 60 29.3 11 16.5 8 7 256 8.5 11 10 8 204 9.8 11 11 9 186 11.0 11 13 10157 12.2 11 15 11 136 13.4 11 17 12 120 14.7 12 18 8 7 512 4.3 12 10 8409 4.9 12 11 9 372 5.5 12 13 10 315 6.1 12 15 11 273 6.7 12 17 12 2417.3

Embodiment VI

The foregoing embodiments I, II, III, IV and V of the present inventioncan be used for multi-node digital communication networks operating inmodes in which spreading-code sequences are the sums of linear recursivesequences generated using feedback taps in each register of atwo-register sequence generator. However, for privacy purposes, amulti-node digital communication network according to the presentinvention could also be used in a “code hopping” mode in which thespreading-code sequences are derived from externally generatedsequences. Use of a communication network according to the presentinvention in a “code hopping” mode illustrates the power of thetwo-register configuration in preventing false synchronization, and inproviding multiple information bits per symbol regardless of the mannerof generating the spreading code.

A “code hopping” technique according to the present invention isillustrated in FIG. 9, which indicates switching at regular intervalsbetween different spreading-code sequences, where each “input” sequenceis arbitrarily selected and may be externally generated by a sequencegenerator 23. The switching intervals can be independent of anyperiodicities associated with input sequences. One or more inputsequences may be selectively transmitted during a given switchinginterval, just as in the other embodiments. The particular inputsequence or sequences selected for transmission during a given switchinginterval are determined by the symbol selection unit 20 on the basis ofthe information bits to be conveyed (as in the above-describedembodiments), or on the basis of “cipher bits” used to maximize privacyby code hopping. In the code hopping mode, information is conveyed bypolarity inversions, just as in ordinary direct-sequence spread-spectrumcommunications. In general, there is no necessary relationship betweenthe information rate and the code hopping rate.

The previous embodiments I, II, III and IV can be used for eithersynchronous operation (i.e., all nodes of the network are synchronizedto a central node) or asynchronous operation (i.e., synchrony isobtained only when communication takes place). In the “code hopping”embodiment, however, synchronous operation is necessary because theexternally generated spreading-code sequences are unique to each node,and communication between nodes must be coordinated by a centralcontroller.

In a code hopping mode, low cross-correlation between spreading-codesequences is not guaranteed. In fact, the cross-correlation statisticsfor spreading-code sequences in a “code hopping” mode are similar to thecross-correlation statistics for random sequences. For example, if thesymbol interval contains 2047 chips, approximately 5% of the correlationvalues should exceed √{square root over (2047)}=90. By contrast, if aGold Code is used, the maximum correlation magnitude is only 1+2⁶=65.Thus, symbol errors are considerably more likely to occur in a “codehopping” mode than in a mode in which composite codes are used for thespreading-code sequences, and in which switching between spreading-codesequences occurs at intervals equal to the period of the sequences.However, a “code-hopping” technique could be effective, providederror-correction coding is used. It is noteworthy that in somestar-networked local area networks, the correlation statistics of randomsequences are accommodated with acceptable bit error rates.

A transmitter for each node of a multi-node digital communicationnetwork according to the present invention is illustrated schematicallyin FIG. 10 in which the spreading-code sequence generator of FIG. 1 isindicated by the reference number 30. Output from the sequence generator30 serves as input for a modulator 31, which can use a conventionalmodulation technique such as BPSK, QPSK, OQPSK, etc. As also shown inFIG. 10, output from an information source 32 is encrypted by anencryption unit 33, which could optionally use the Data EncryptionStandard certified by the National Bureau of Standards.

Encrypted output from the encryption unit 33 serves as input to aReed-Solomon encoder 34, which is programmable to specify informationrates that are appropriate for the specified embodiment, and for theparticular mode of operation (e.g., using Gold code sequences, randomsequences, etc.). Error-control coded output from the Reed-Solomonencoder 34 serves as input to a symbol selection unit 35, which could beimplemented in software on a commercially available microprocessor.

The symbol selection unit 35 selects one or more candidatespreading-code sequences from among all the spreading-code sequencesavailable to a particular node of the network for input to the modulator31. The modulator 31 modulates the outputs of the sequence generator 30onto a carrier for transmission. A signal encoded in accordance with thepresent invention is then transmitted by the modulator 31 to the variousnodes of the network.

A receiver for each node of a network according to the present inventionis illustrated schematically in FIG. 11 in which the spreading-codesequence generator of FIG. 1 is indicated by the reference number 30. Asynchronization-and-tracking unit 36 is used to maintain continuouscommunications. Synchronization and tracking techniques forspread-spectrum systems are well-developed in the art, and form thesubject of an expansive body of literature. A demodulator 37 heterodynesthe spread-spectrum signal to baseband. In the case of a hybridfrequency-hopped direct-sequence implementation, the demodulator 37provides baseband chip-synchronized data to a symbol recovery unit 38,which makes symbol decisions and provides the bits associated with eachrecovered symbol to a Reed-Solomon decoder 39.

As shown in FIG. 12, the symbol recovery unit 38 of FIG. 11 includes acorrelation unit 41 and a symbol detection and logic unit 42. The symbolrecovery unit 38 correlates the input signal with each candidatespreading-code sequence. The symbol detection and logic unit 42determines the strongest correlation outputs, makes a decision on themost likely transmitted sequence or sequences, and makes symbols-to-bitsassignments. The Reed-Solomon decoder 39 of FIG. 11 processes therecovered symbols, and passes the decoded bitstream to a decryptor 40,if encryption is to be used.

The present invention has been described above in terms of particularclasses of spreading-code sequences, a particular type of error-controlcoding (viz., Reed-Solomon coding), constrained numbers of symbols pernode, particular methods of assigning blocks of information bits tosymbols (in the case of a multiple-symbol information transmission mode)or of assigning blocks of information bits from a key generator (in thecase of an information transmission mode in which spreading-codesequences are provided from an external source), a particular method ofmaking symbol decisions, and particular methods of operating inmultiple-symbol information transmission modes. However, other classesof spreading-code sequences, error-control coding schemes, symbolselection schemes, decision schemes, and methods of operation that aremore advantageously suited to particular applications and/orenvironments would be apparent to practitioners skilled in the art ofspread-spectrum digital communications upon perusal of the foregoingspecification and the accompanying drawing. Accordingly, the foregoingdescription is to be understood as merely illustrative of the invention,which is defined more generally by the following claims and theirequivalents.

1. An assembly of simultaneously transmitted electromagnetic signals,said signals being related to each other in said assembly so as tocommunicate stored information to a receiver, said signals beinggenerated by modulating selected subsets of a set ofshift-register-stored binary spreading-code sequences onto a sinusoidalcarrier, at least one subset of said set of binary spreading-codesequences containing more than one of said binary spreading-codesequences, each subset of said set of binary spreading-code sequencesembodying a corresponding portion of said information.
 2. An assembly ofsimultaneously transmitted electromagnetic signals, said signals beingrelated to each other in said assembly so as to communicate storedinformation within a transmitting node to a receiving node of acommunication network, said assembly of signals being produced by aprocess of: a) assigning blocks of bits embodying said storedinformation to corresponding subsets of a set of shift-register-storedbinary spreading-code sequences, at least one of said subsets of saidset of binary spreading-code sequences containing more than one of saidbinary spreading-code sequences; and b) simultaneously transmittingselected subsets of said set of stored binary spreading-code sequencesfrom said transmitting node to said receiving node.
 3. An assembly ofelectromagnetic signals, said signals being related to each other insaid assembly so as to communicate stored information within atransmitting node to a receiving node of a communication network, saidassembly of signals being produced by a process of: a) generating a setof binary spreading-code sequences by combining contents stored withinspecified stages of a first binary shift register with contents storedwithin specified stages of a second binary shift register, said set ofbinary spreading-code sequences containing more than one binaryspreading-code sequence; b) assigning blocks of bits embodying saidstored information to corresponding subsets of said set of binaryspreading-code sequences, each of said subsets of said set of binaryspreading-code sequences containing at least one of said binaryspreading-code sequences; and c) transmitting selected subsets of saidset of binary spreading-code sequences from said transmitting node tosaid receiving node.